home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Pascal Super Library
/
Pascal Super Library (CW International)(1997).bin
/
SWAG
/
SWAGA_C
/
COMM.SWG
/
0001_Routines for AVATAR.pas
next >
Wrap
Pascal/Delphi Source File
|
1993-05-28
|
4KB
|
148 lines
{
SEAN PALMER
> Would you mind sharing that source w/us? I would like to
> add AVATAR support to my doors, yet don't have those FSC docs.
Here are some FSC Docs I got off a FIDO echo...
The basic commands are: (AVT/0 FSC-0025)
<^L> - clear the current Window and set current attribute
to default. In the basic session this means:
Clear the screen and set its attribute to 3.
<^Y> - Read two Bytes from the modem. Send the first one
to the screen as many times as the binary value
of the second one. This is the exception where
the two Bytes may have their high bit set. Do
not reset it here!
<^V> <^A> <attr> - Set the color attribute to <attr>. The default
attribute remains unchanged. However, all Text
will be displayed in <attr> Until the next ^V^A,
^V^B, or ^L.
<^V> <^B> - Turn the high bit of current attribute on. In
other Words, turn blink on.
<^V> <^C> - Move the cursor one line up. Do nothing, if you
already are at the top line of the current
Window.
<^V> <^D> - Move the cursor one line down. Do nothing if you
already are at the bottom line of the current
Window.
<^V> <^E> - Move the cursor one column to the left. Do nothing
if you already are at the leftmost column of the
current Window.
<^V> <^F> - Move the cursor one column to the right. Do nothing
if you already are at the rightmost column of the
current Window.
<^V> <^G> - Clear the rest of the line in the current Window
using the current attribute (not to be confused
With the default attribute).
<^V> <^H> <row> <col> - Move the cursor to the <row> <col>
position Within the current Window.
New Commands (brief definitions) (AVT/0+ FSC-0037)
<^V><^I> - Turn insert mode ON. It stays on Until any other AVT/0
command except <^Y> and <^V><^Y> is encountered after
which it is turned off;
<^V><^J><numlines><upper><left><lower><right> - scroll area up;
<^V><^K><numlines><upper><left><lower><right> - scroll area down;
<^V><^L><attr><lines><columns> - clear area, set attribute;
<^V><^M><attr><Char><lines><columns> - initialize area, set attribute;
<^V><^N> - delete Character, scroll rest of line left;
<^V><^Y><numChars><Char>[...]<count> - Repeat pattern.
and here is some source I use For AVATAR codes.
}
Unit Avatar; {these Functions return avatar codes as Strings}
Interface
{AVT/0+ FSC-0025}
Const
clearScr : String = ^L;
blink : String = ^V^B;
up : String = ^V^C;
dn : String = ^V^D;
lf : String = ^V^E;
rt : String = ^V^F;
cleol : String = ^V^G;
Function rep(c : Char; b : Byte) : String;
Function attr(a : Byte) : String;
Function goxy(x, y : Byte) : String;
{AVT/0+ FSC-0037}
Const
insMode : String = ^V^I;
delChar : String = ^V^N;
Function scrollUp(n, l, t, r, b : Byte) : String;
Function scrollDn(n, l, t, r, b : Byte) : String;
Function clear(a, w, h : Byte) : String;
Function fill(c : Char; a, w, h : Byte) : String;
Function pattern(s : String; n : Byte) : String;
Implementation
Function rep(c : Char; b : Byte) : String;
begin
rep := ^Y + c + Char(b);
end;
Function attr(a : Byte) : String;
begin
attr := ^V^A + Char(a and $7F);
end;
Function goxy(x, y : Byte) : String;
begin
goxy := ^V^H + Char(y) + Char(x);
end;
Function scrollUp(n, l, t, r, b : Byte) : String;
begin
scrollUp := ^V^J + Char(n) + Char(t) + Char(l) + Char(b) + Char(r);
end;
Function scrollDn(n, l, t, r, b : Byte) : String;
begin
scrollDn := ^V^K + Char(n) + Char(t) + Char(l) + Char(b) + Char(r);
end;
Function clear(a, w, h : Byte) : String;
begin
clear := ^V^L + Char(a) + Char(h) + Char(w);
end;
Function fill(c : Char; a, w, h : Byte) : String;
begin
fill := ^V^M + c + Char(a) + Char(h) + Char(w);
end;
Function pattern(s : String; n : Byte) : String;
begin
pattern := ^V^Y + s[0] + s + Char(n);
end;
end.